Esiste uno standard per mostrare e nascondere facilmente i contenuti?
Domanda
- Attiva o disattiva i commenti o le lastre di codice per mostrare o nascondere rapidamente i contenuti?
- Quali sono alcuni metodi comuni che usi?
- Esiste uno standard accettato?
- Alcuni metodi dovrebbero essere evitati? cioè potrebbero essere male interpretati da alcuni motori?
- Esiste una soluzione alternativa o migliore a questo?
Standard - Questo è quello che uso per coprire la maggior parte delle lingue: CSS, JavaScript, PHP, ActionScript
/**/ visible /**/
/**\/ hidden /**/
HTML
<!----> visible <!---->
<!----/> hidden <!---->
PHP - Definire qualcosa come $ hide funziona bene, altre variabili potrebbero essere di produzione o di sviluppo - le lastre di grandi dimensioni possono quindi essere nascoste e mostrate insieme con una semplice modifica della variabile.
if(0){ hidden }
if(1){ visible }
if(!$HIDE){ content } // $HIDE defined elsewhere, visible if undefined
Soluzione
Penso che se puoi controllare a livello di codice ciò che viene reso, è meglio (come quello che hai fatto nel PHP). Una soluzione ancora migliore di quella che hai scritto (essenzialmente una macro di preprocessore locale) è quella di suddividere il codice di rendering in funzioni che generano parti secondarie dei documenti. Se non ti serve, non lo chiami e hai una chiara condizione nel codice. Questo è, ad esempio, il modo in cui è scritto MediaWiki. Altrimenti, in progetti complessi, diventa un casino.
Esistono molti rischi nel codificare il commento nel codice. Tra questi:
-
Molto facile rovinare il non commentante
-
Non è chiaro ciò che è stato commentato.
-
Problema quando le sezioni commentate si sovrappongono
-
Errori taglia e incolla
-
Tutto ciò che volevi nascondere è ancora accessibile, influenza i motori di ricerca, ecc.
Altri suggerimenti
/*
Commented
// */
//*
Not commented
// */
Alcune persone mi hanno detto che il modo corretto di commentare sezioni di C ++, dal momento che apparentemente non usiamo più il preprocessore è usare un'istruzione if
.
if(false)
{
chunk of code;
}
La teoria è che il compilatore ottimizzerà quel codice morto dal prodotto finale e possono essere nidificati, cosa che i commenti di stile / * * /
non possono fare.
Questa teoria è falsa, ovviamente, perché non puoi usarla per commentare regioni arbitrarie di codice, ad esempio:
class Foo
{
void Bar();
if(false)
{
int Baz(double); // WRONG!!!
}
};
D'altra parte, funziona perfettamente con linguaggi come Python che consentono qualsiasi istruzione in qualsiasi blocco e che mancano anche di un preprocessore standard o di commenti di blocco.
Preferisco usare un editor di testo che comprenda la struttura del testo sorgente che sto modificando ( Vim e Emacs sono i venerabili favoriti) e che può eseguire la piegatura del codice sulla base della struttura analizzata dall'editor.
O Vim folding o Emacs pieghevole soddisfa questa esigenza per me.